diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index c43b399..d96fffa 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -212,13 +212,7 @@
 
 
 	
-	function create_database()
-	{
-	}
 	
-	function drop_database()
-	{
-	}
 	
 	function show_databases()
 	{
diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php
index 96d1128..9ff92d4 100644
--- a/system/database/drivers/mssql/mssql_utility.php
+++ b/system/database/drivers/mssql/mssql_utility.php
@@ -24,6 +24,34 @@
  */
 class CI_DB_mssql_utility extends CI_DB_utility {
 
+
+	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
 	
 	/**
 	 * Version number query string
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index 9bf2f5a..d4e9786 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -24,6 +24,33 @@
  */
 class CI_DB_mysql_utility extends CI_DB_utility {
 	
+	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
 
 	/**
 	 * Version number query string
@@ -86,6 +113,7 @@
 	}
 
 
+
 }
 
 ?>
\ No newline at end of file
diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php
index a1498a3..9c773b4 100644
--- a/system/database/drivers/mysqli/mysqli_utility.php
+++ b/system/database/drivers/mysqli/mysqli_utility.php
@@ -25,6 +25,34 @@
 class CI_DB_mysqli_utility extends CI_DB_utility {
 	
 	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Version number query string
 	 *
 	 * @access	public
diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php
index fdd585d..35b753e 100644
--- a/system/database/drivers/oci8/oci8_utility.php
+++ b/system/database/drivers/oci8/oci8_utility.php
@@ -25,6 +25,33 @@
 class CI_DB_oci8_utility extends CI_DB_utility {
 
 
+	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+
+	}
+
+	// --------------------------------------------------------------------
 
     /**
      * Version number query string
diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php
index 837c8c8..51fec8e 100644
--- a/system/database/drivers/odbc/odbc_utility.php
+++ b/system/database/drivers/odbc/odbc_utility.php
@@ -24,6 +24,39 @@
  */
 class CI_DB_odbc_utility extends CI_DB_utility {
 
+
+	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+		// ODBC has no "create database" command since it's 
+		// designed to connect to an existing database
+		return FALSE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+		// ODBC has no "drop database" command since it's 
+		// designed to connect to an existing database
+		return FALSE;
+	}
+
+	// --------------------------------------------------------------------
+
 	/**
 	 * Version number query string
 	 *
diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php
index cfc475f..c38cf6e 100644
--- a/system/database/drivers/postgre/postgre_utility.php
+++ b/system/database/drivers/postgre/postgre_utility.php
@@ -26,6 +26,34 @@
 
 	
 	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database($name)
+	{
+		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Version number query string
 	 *
 	 * @access	public
diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php
index 2b99df9..8cbf0d5 100644
--- a/system/database/drivers/sqlite/sqlite_utility.php
+++ b/system/database/drivers/sqlite/sqlite_utility.php
@@ -24,6 +24,44 @@
  */
 class CI_DB_sqlite_utility extends CI_DB_utility {
 
+
+	/**
+	 * Create database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function create_database()
+	{
+		// In SQLite, a database is created when you connect to the database
+		return TRUE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop database
+	 *
+	 * @access	public
+	 * @param	string	the database name
+	 * @return	bool
+	 */
+	function drop_database($name)
+	{
+		if ( ! @file_exists($this->db->database) OR ! @unlink($this->db->database))
+		{
+			if ($this->db_debug)
+			{
+				return $this->display_error('db_unable_to_drop');
+			}
+			return FALSE;
+		}
+		return TRUE;
+	}
+
+	// --------------------------------------------------------------------
+
 	/**
 	 * Version number query string
 	 *
diff --git a/system/language/english/db_lang.php b/system/language/english/db_lang.php
index d51bb6d..a3d0900 100644
--- a/system/language/english/db_lang.php
+++ b/system/language/english/db_lang.php
@@ -12,6 +12,7 @@
 $lang['db_field_param_missing'] = 'To fetch fields requires the name of the table as a parameter.';
 $lang['db_unsupported_function'] = 'This feature is not available for the database you are using.';
 $lang['db_transaction_failure'] = 'Transaction failure: Rollback performed';
+$lang['db_unable_to_drop'] = 'Unable to drop the specified database.';
 
 
 ?>
\ No newline at end of file
